import threading
import time

import ttkbootstrap as ttkb
from ttkbootstrap.constants import *

from app.util.annotation_util import annotate, ClassInfo
from app.view.base_view import View
from config.tk_desktop_toolset_param import app_name, version


@annotate(ClassInfo(name="关于", category="help"))
class AboutView(View):
    """关于视图"""

    def create_widgets(self):
        label = ttkb.Label(self, text="关于应用", font=("Arial", 16))
        label.pack(pady=20)

        info_text = f"""
        应用名称: {app_name}

        版本: {version}

        描述: 这是一个基于ttkbootstrap的桌面应用框架，
        包含菜单栏、可切换内容区域和状态栏等。
        选择对应的菜单切换功能。
        """

        info = ttkb.Label(self, text=info_text, justify=LEFT)
        info.pack(padx=20, pady=10, anchor=W)

        btn = ttkb.Button(self, text="检查更新", command=self.check_update)
        btn.pack(pady=20)

    def check_update(self):
        """检查更新示例"""
        self.controller.update_status("正在检查更新...")
        # 模拟网络请求延迟
        threading.Thread(target=self._simulate_update_check, daemon=True).start()

    def _simulate_update_check(self):
        time.sleep(2)  # 模拟网络延迟
        self.controller.update_status("当前已是最新版本")
